package com.jctrip.hotel.domain.entity;

import lombok.*;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 供应订单记录表(ht_order_source_record)表实体类
 *
 * @author makejava
 * @since 2023-06-17 16:22:44
 */
@EqualsAndHashCode(callSuper = true)
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class HtOrderSourceRecord extends BaseEntity {

    //系统订单号
    private String orderId;
    //供应商编号
    private String sourceCode;
    //供应商账户id
    private String sourceId;
    //供应商订单号
    private String sourceOrderId;
    //预定单号
    private String bookId;
    //预定确认号(预留)
    private String pnr;
    //酒店唯一编号
    private String hotelId;
    //酒店名称
    private String hotelName;
    //房型编号
    private String roomTypeCode;
    //房型名称
    private String roomTypeName;
    //入住间数
    private Integer roomCount;
    //供应订单状态(0-待确认；1-预定成功；2-已取消；3-预定未到；4-已入住；5-已离店；6-预定失败)
    private Integer sourceOrderStatus;
    //供应支付状态(0-未支付；1-已支付；2-退款处理中；3-已退款)
    private Integer sourcePaymentStatus;
    //入住日期(yyyy-MM-dd)
    private Date arriveDate;
    //退房日期(yyyy-MM-dd)
    private Date departDate;
    //最晚到店时间(yyyy-MM-dd HH:mm:ss)
    private Date latestArriveTime;
    //最晚保留时间(yyyy-MM-dd HH:mm:ss)
    private Date latestHoldTime;
    //实际入住时间(yyyy-MM-dd HH:mm:ss)
    private Date realArriveTime;
    //实际退房时间(yyyy-MM-dd HH:mm:ss)
    private Date realDepartTime;
    //支付类型(1=预付；2=现付；3=信用类后付)
    private Integer paymentType;
    //产品代码
    private String productCode;
    //联系人
    private String contactName;
    //联系人电话
    private String contactTel;
    //入住人(多人，逗号分隔)
    private String guestName;
    //入住人电话
    private String guestTel;
    //币种
    private String currencyCode;
    //采购金额
    private BigDecimal purchasePrice;
    //退款金额
    private BigDecimal refundPrice;
    //担保类型(0=无担保；1=首晚担保；2=全额担保)
    private Integer guaranteeType;
    //取消规则(JSON格式)
    private String cancelRule;
    //每日价格列表(JSON格式)
    private String dailyPriceList;
    //下单请求参数
    private String requestBody;
    //下单失败的应答内容
    private String responseBody;
    //订单备注
    private String orderNotes;
    //人工备注
    private String manualNotes;
    //操作账户
    private String operator;
    //订单创建时间(yyyy-MM-dd HH:mm:ss)
    private Date orderCreateTime;
    //订单变更时间(yyyy-MM-dd HH:mm:ss)
    private Date orderModifyTime;
}
